<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <script type="text/javascript">

       /* let arr1 = [1,2,3,4];
        let arr2 = ["a","b","c","d"];
        let arr3 = ["一","二","三"]

        arr1.forEach(e1=>{
            arr2.forEach(e2=>{
                arr3.forEach(e3=>{
                    console.log(e1+e2+e3)
                })
            })
        })
*/
        //未知数组的个数？
       let arr1 = [1,2,3,4];
       let arr2 = ["a","b","c","d"];
       let arr3 = ["一","二","三"];
       let arr4 = ["A","B"]

       /*
       *
       * arr.reduce(callback, initialValue)
       * 迭代数组的所有项，累加器，数组中的每个值（从左到右）合并，最终计算为一个值
　　      参数：callback:
                previousValue 必选 --上一次调用回调返回的值，或者是提供的初始值（initialValue）
　　　　　　　　　　currentValue 必选 --数组中当前被处理的数组项
　　　　　　　　　　index 可选 --当前数组项在数组中的索引值
　　　　　　　　　　array 可选 --原数组
　　　　　     initialValue: 可选 --初始值
       *
       * */
       //默认将初始值和第一个元素做累加
       //第一次的时候previousValue = 初始值  currentValue=第一个元素
       //如果没有设置初始值，previousValue=第一个元素   currentValue=第二个元素
       let arr = [arr1,arr2,arr3,arr4];
       let resultArr = arr.reduce((previousValue,currentValue)=>{
           let tempArr = [];
           previousValue.forEach(e1=>{
               currentValue.forEach(e2=>{
                   tempArr.push(e1+e2)
               })
           })
           return tempArr;
       })

        console.log(resultArr)

    </script>

</body>
</html>